/*
 * 静态变量与静态函数
 */

// 定义对象
function Rabbit(id,name,age){
    // 通过this来绑定实例属性
    this.id = id ;
    this.name = name ;
    this.age = age ;
    // 通过this来绑定实例函数(将函数作为值赋值给属性)
    this.introduce = function(){
        console.log( `大家好我是${this.id}号，我叫${this.name}，今年${this.age}岁`);
    }
}

// 通过对象直接绑定静态属性
Rabbit.school = '大肥兔学校' ; // 对象名.属性名 = 值
console.log( Rabbit.school ); // 对象名.属性名

// 通过对象直接绑定静态函数(将函数作为值赋值给属性)
Rabbit.show = function(){
    console.log( `这里是${Rabbit.school}` ); // 通过 "对象名.属性名" 访问静态属性
}

// 通过对象来调用静态函数
Rabbit.show();

console.log( '- - - - - - - - - - - - - - -' );

console.log( Rabbit ); // 直接将对象打印到控制台

console.log( '- - - - - - - - - - - - - - -' );

// 创建实例
let r = new Rabbit( 1 , '小白兔' , 5 );
r.introduce();
// 通过实例无法访问静态属性
console.log( r.school ); // undefined
// 通过实例无法访问静态函数
// r.show(); // TypeError: r.show is not a function

// 创建实例
let a = new Rabbit( 2 , '小灰兔' , 6 );
a.introduce();
// 通过实例无法访问静态属性
console.log( a.school ); // undefined
// 通过实例无法访问静态函数
// a.show(); // TypeError: a.show is not a function